#include "contactlib.h"
#include <QDebug>
ContactLib* ContactLib::contactlib=nullptr;

ContactLib::ContactLib(){}

ContactLib *ContactLib::getInstance()
{
    if(contactlib==nullptr)
    {
        contactlib=new ContactLib;
    }
    return contactlib;
}

void ContactLib::clearContactLib()
{
    friendlist.clear();
    friendlisthash.clear();
}

QString ContactLib::getName(const QString &oc)
{
    return friendlisthash[oc];
}

bool ContactLib::isEmpty()
{
    return friendlist.isEmpty();
}

bool ContactLib::contain(const QString &oc)
{
    return friendlisthash.contains(oc);
}

void ContactLib::removeContact(const QString &oc)
{
    friendlisthash.remove(oc);
    for(auto i=friendlist.begin();i<friendlist.end();i++)
    {
        if(i->first==oc)
        {
            friendlist.erase(i);
            return;
        }
    }

}

void ContactLib::appendContact(const QString &friendoc, const QString &friendname)
{
    friendlist.append(QPair<QString,QString>(friendoc,friendname));
    friendlisthash.insert(friendoc,friendname);
    emit s_appendFriend(friendoc,friendname);
}

void ContactLib::recvContactList(const QList<QPair<QString,QString>>& result)
{
    friendlist.clear();
    friendlist=result;
    for(QPair<QString,QString> i:result)
        friendlisthash.insert(i.first,i.second);
    emit s_friendLibLoadDone();
}

QList<QPair<QString, QString> > ContactLib::getFriendList()
{
    return friendlist;
}
